package com.base.dao;

import java.util.List;

import com.base.criteria.Criteria;

public interface BaseDao {

	
	/**
	 * 添加
	 * @param t
	 */
	public <T> void add(T t);
	
	
	/**
	 * 替换
	 * @param t
	 */
	public <T> void update(T t);
	
	/**
	 * 选择性替换
	 * @param t
	 */
	public <T> void updateBySelective(T t); 	
	
	/**
	 * 删除
	 * @param id
	 */
	public void delete(Object id);
	

	/**
	 * @param criteria
	 * @return
	 */
	public int queryByCount(Criteria criteria);
	
	public <T> List<T> queryByList(Criteria criteria);
	
	
	public <T> T queryById(Object id);


	/**
	 * 非条件查询,寻找对象,没有判断值
	 * @param t
	 * @return  
	 */
	public <T> List<T> findExist(T t);
	
	/**根据list id 查询
	 * @param List<T>  ids
	 * @return
	 */
	public <T> List<T> queryByIdList(List<T> ids);
	
	
	/**insert  list Object
	 * @param List<T> t
	 */
	public <T> void addList(List<T> t);
	
}
